Start4IT
GIS • Remote Sensing • GEE Scripts
Remote Sensing Index
NDRE • Red Edge Chlorophyll Monitoring

NDRE – Normalized Difference Red Edge

NDRE is a red-edge-based vegetation index designed to be more sensitive to leaf chlorophyll and nitrogen status than classical NDVI, especially in medium to high biomass crops. It uses a Red Edge band and Near-InfraRed (NIR) reflectance.

1. Scientific Definition

The Normalized Difference Red Edge (NDRE) is a spectral index that exploits the Red Edge region (transition between red and NIR) together with Near-InfraRed (NIR) reflectance. It is particularly sensitive to leaf chlorophyll content and canopy nitrogen, and less prone to saturation than NDVI in dense crops.

Formula

NDRE is commonly defined as:

NDRE = (NIR − RedEdge) / (NIR + RedEdge) Dimensionless (–1 to +1)

For Sentinel-2, a typical choice is:
NIR = B8 (842 nm), RedEdge = B5 (705 nm).

Typical Interpretation

NDRE Range Interpretation
< 0.0 Water, clouds, snow, or non-vegetated bright surfaces
0.0 – 0.2 Bare soil, rocks, built-up, or very low chlorophyll / stressed vegetation
0.2 – 0.5 Moderate vegetation with medium chlorophyll levels
> 0.5 Dense, vigorous vegetation with high chlorophyll / nitrogen status

Key Applications

  • Precision agriculture and fertilizer management (nitrogen/chlorophyll mapping)
  • Early stress detection in crops before visible change in NDVI
  • Monitoring high-biomass crops and orchards where NDVI saturates
  • Yield prediction and temporal analysis of crop vigor

2. Data & Bands for NDRE

Common Sensors & Bands

  • Sentinel-2 (ESA) – 10 / 20 m
    • Red Edge: B5 (~705 nm) or B6 (~740 nm)
    • NIR: B8 (~842 nm) or B8A (~865 nm)
  • Multispectral drone / camera sensors (Micasense, etc.)
    • Dedicated Red Edge band + NIR band
  • Other satellite sensors that provide an explicit Red Edge band (e.g. some PlanetScope configurations, commercial high-res sensors).

Good Practice

  • Use surface reflectance products (e.g. COPERNICUS/S2_SR).
  • Filter by cloud percentage and date range relevant to the crop season.
  • Keep the same Red Edge band (e.g. B5) across all dates to ensure consistency.
  • Clip NDRE results to your specific field / AOI before exporting.

Palette Suggestion

A suitable NDRE color palette (low → high chlorophyll): [ "#440154", "#3b528b", "#21908c", "#5dc963", "#fde725" ]

3. Google Earth Engine Code – NDRE for Any AOI

Steps: open code.earthengine.google.com → New Script → paste the code → draw your AOI as geometry on the map → click Run. Then export NDRE as GeoTIFF to Google Drive.

// NDRE for any Area of Interest (AOI) using Sentinel-2 SR
// -------------------------------------------------------
// 1) Go to: https://code.earthengine.google.com
// 2) Click "New Script" and paste this code.
// 3) On the map: draw your AOI (Polygon/Rectangle).
//    It will appear as a variable named 'geometry' in the left panel.
// 4) Click "Run" to display NDRE.
// 5) In the Tasks tab, click "Run" to export NDRE to Google Drive.

// -------------------------------------------------------
// 1. Define Area of Interest (AOI)
// -------------------------------------------------------
// Use the geometry you draw on the map:
var roi = geometry;  // Make sure a 'geometry' object exists in the left panel

// Center the map on the AOI
Map.centerObject(roi, 11);

// -------------------------------------------------------
// 2. Define time range
//    Adjust dates according to your study period
// -------------------------------------------------------
var startDate = '2023-01-01';
var endDate   = '2023-12-31';

// -------------------------------------------------------
// 3. Load Sentinel-2 Surface Reflectance collection
//    and prepare a homogeneous ImageCollection
// -------------------------------------------------------
var s2 = ee.ImageCollection('COPERNICUS/S2_SR')
  .filterBounds(roi)
  .filterDate(startDate, endDate)
  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20))
  // keep only the bands needed to compute NDRE to avoid band mismatches
  .select(['B5', 'B8']);  // B5 = Red Edge, B8 = NIR

// Create a median composite and clip to AOI
var image = s2.median().clip(roi);

// -------------------------------------------------------
// 4. Compute NDRE
// -------------------------------------------------------
// NDRE = (NIR - RedEdge) / (NIR + RedEdge)
var ndre = image.normalizedDifference(['B8', 'B5']).rename('NDRE');

// -------------------------------------------------------
// 5. Visualization on the map
// -------------------------------------------------------
var ndreVis = {
  min: -1,
  max: 1,
  palette: [
    '#440154', // low (water / no vegetation)
    '#3b528b',
    '#21908c',
    '#5dc963',
    '#fde725'  // high (dense high-chlorophyll vegetation)
  ]
};

// Add NDRE layer to the map
Map.addLayer(ndre, ndreVis, 'NDRE (Sentinel-2)', true);

// Optionally, also show a true color composite for context
var s2_rgb = ee.ImageCollection('COPERNICUS/S2_SR')
  .filterBounds(roi)
  .filterDate(startDate, endDate)
  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20))
  .select(['B4','B3','B2'])  // RGB
  .median()
  .clip(roi);

Map.addLayer(s2_rgb, {min:0, max:3000}, 'True Color (RGB)', false);

// -------------------------------------------------------
// 6. Export NDRE as GeoTIFF to Google Drive
// -------------------------------------------------------
Export.image.toDrive({
  image: ndre,
  description: 'NDRE_Export',
  fileNamePrefix: 'NDRE_Export',
  region: roi,
  scale: 10,       // Sentinel-2 native resolution for B8/B5
  crs: 'EPSG:4326',
  maxPixels: 1e13
});

// End of script